Skip to content

fix(net): stop failing a cask install on a blip the download would have retried - #881

Merged
indaco merged 1 commit into
mainfrom
fix/retry-transient-faults-on-both-redirect-walks
Aug 21, 2026
Merged

fix(net): stop failing a cask install on a blip the download would have retried#881
indaco merged 1 commit into
mainfrom
fix/retry-transient-faults-on-both-redirect-walks

Conversation

@indaco

@indaco indaco commented Aug 21, 2026

Copy link
Copy Markdown
Owner

Description

A cask with an extensionless URL is classified by a HEAD walk before it is downloaded, and that walk had no retry - so a single reset connection failed the install outright, even though the download that follows would have retried the same hop three times. The download had the opposite flaw: it retried anything, burning the full backoff on failures no second attempt could change - a spent redirect budget, a malformed redirect, an unparseable URL.

Both walks now retry the transport and surface what the response already decided. A Ctrl-C during classification is no longer reported as a dead network either.

Related Issue

  • None

Notes for Reviewers

  • None

…ve retried

The HEAD walk that classifies a cask's artifact had no retry at all, so one
reset connection was a hard install failure even though the download that
follows would have retried the same hop three times. The download's wrapper had
the opposite flaw: it retried every error, spending the full backoff before
re-reporting a spent hop budget, a malformed redirect or an unparseable url.

Both walks now share one rule - retry the transport, surface what the response
already decided. The redirect decision and the classification walk each return
a closed error set, so the split is derived from those sets rather than a hand
written list, and the cask installer maps them exhaustively: a cancelled walk is
no longer reported as a dead network.
@indaco
indaco merged commit 67ccc6e into main Aug 21, 2026
3 checks passed
@indaco
indaco deleted the fix/retry-transient-faults-on-both-redirect-walks branch August 21, 2026 10:18
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant